/*
 * @Author: HanYaJun
 * @Date: 2023-01-05 19:59:26
 * @Email: hanyajun@wedobest.com.cn
 * @Description: 绘制 Mask 遮罩
 */

const { ccclass, property } = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {
    /**
     * @description: 当附加到一个激活的节点上或者其节点第一次激活时候调用
     */
    protected onLoad(): void {
        let graphics = this.node.getComponent(cc.Mask)['_graphics'];
        let graphicsPosArr: cc.Vec2[] = this.node.getComponent(cc.PolygonCollider).points;
        // 清除所有路径
        graphics.clear();
        // 把路径移动到画布中的指定点，不创建线条
        graphics.moveTo(graphicsPosArr[0].x, graphicsPosArr[0].y);
        for (let i = 1; i < graphicsPosArr.length; i++) {
            // 添加一个新点，然后在画布中创建从该点到最后指定点的线条
            graphics.lineTo(graphicsPosArr[i].x, graphicsPosArr[i].y);
        }
        // 创建从当前点回到起始点的路径
        graphics.close();
        // 绘制已定义的路径
        graphics.stroke();
        // 填充当前绘图（路径）
        graphics.fill();
    }
}
